"""
模块级别：
【执行顺序】
不在类里的测试用例
1、会先执行setup_module方法
2、执行测试用例
3、最后执行teardown_module方法
"""
"""
def setup_module():
    print("这是模块级的setup方法")

def teardown_module():
    print("这是模块级的teardown方法")

def test_demo1():
    print("这是demo1")

def test_demo2():
    print("这是demo2")

def test_demo3():
    print("这是demo3")
"""
"""
函数级别的setup方法和teardown方法

以每条测试用例为基准，有多少条，就会执行多少次setup和teardown
"""
"""
def setup_function():
    print("这是函数级的setup方法")

def teardown_function():
    print("这是函数级的teardown方法")

def test_demo1():
    print("这是demo1")

def test_demo2():
    print("这是demo2")
"""
"""
类级别和方法级别
"""
class TestDemo:
    """
    # 类级别的方法：通篇类只会执行一次类级别setup
    def setup_class(self):
        print("这是类级别的setup方法")
    # 类级别的方法：通篇类只会执行一次类级别teardown
    def teardown_class(self):
        print("这是类级别的teardown方法")
    """
    # 按照每条用例，单独执行setup方法
    def setup_method(self):
        print("这是方法级别的setup方法")
    # 按照每条用例，单独执行teardown方法
    def teardown_method(self):
        print("这是方法级别的teardown方法")

    def test_demo1(self):
        print("这是demo1")

    def test_demo2(self):
        print("这是demo2")

    def test_demo3(self):
        print("这是demo3")





